﻿<?php

// Paraméter
//
class SqlParam
{
	public $Name = "";

	public $Value = "";

	public function __construct($N, $V) {
		$this->Name = $N;
		$this->Value = $V;
	}
}


// SQL parancs vagy lekérdezés futtatása
//
function sql_execute($conn, $sqltext, $params, $tran = false)
{
	try
	{		
		// Hátha nem sikerül
		if ($tran == true)
		{
			if ($conn->beginTransaction() == false)
				throw new Exception("PDO::beginTransaction failed !");
		}

		$stmt = $conn->prepare($sqltext);;
		
		foreach ($params as $par)
		{
			$stmt->bindParam($par->Name, $par->Value, PDO::PARAM_STR);
		}		

		if ($stmt->execute() == false)
		{
			$err = $stmt->errorInfo()[2];
			throw new Exception($err);
		}
		
		$rows = $stmt->fetchAll();		

		$stmt = null;
		
		// Sikerült
		if ($tran == true)
		{
			if ($conn->commit() == false)
			 	throw new Exception("PDO::commit failed !");	
		}

		return $rows;
	}
	catch (Exception  $e)
	{
		// Nem jött össze
		if ($tran == true)
		{
			$conn->rollBack();
		}

		throw new Exception($e->getMessage());
	}
}

// Kapcsolódás a szerverhez
//
function sql_connect($lang)
{
	// Adatbázis nyitás
	$conn = new PDO("mysql:host=localhost;port=;dbname=ZeusLite", "ZeusLite", "Yogi_Bear", array(PDO::MYSQL_ATTR_FOUND_ROWS => true));
		
	// SQL
	$sql = "SET @@lc_time_names = '". $lang ."'";
	$par = array();
	$rows = sql_execute($conn, $sql, $par);

	return $conn;
}

?>